import { userAccountCheckOnly } from '@/api/user.js'
// 给vee-validate提供校验规则
export default {
  // value是表单绑定的值
  // 用户名校验
  account (value) {
    if (!value) return '请输入用户名'
    // 规则：字母开头并且6-20字符之间
    if (!/^[a-zA-Z]\w{5,19}$/.test(value)) return '字母开头且6-20个字符'
    return true
  },
  // 用户校验且检验其唯一性
  async accountAPI (value) {
    if (!value) return '请输入用户名'
    // 规则：字母开头并且6-20字符之间
    if (!/^[a-zA-Z]\w{5,19}$/.test(value)) return '字母开头且6-20个字符'
    // 发请求去服务器端校验
    const data = await userAccountCheckOnly(value)
    console.log(data)
    if (data.result.valid) return '用户名已存在'
    return true
  },
  password (value) {
    if (!value) return '请输入密码'
    // 密码格式
    if (!/\w{6,24}$/.test(value)) { return '密码必须是长度为6-24的字符串' }
    return true
  },
  rePassword (value, { form }) {
    if (!value) return '请确认密码'
    // 密码格式
    if (!/\w{6,24}$/.test(value)) { return '密码必须是长度为6-24的字符串' }
    // form是表单数据对象
    if (value !== form.password) return '两次密码输入不一致，请重新输入'
    return true
  },
  mobile (value) {
    if (!value) return '请输入手机号'
    // 手机号格式 1开头+3-9之间一个数字+9个数字
    if (!/^1[3-9]\d{9}$/.test(value)) return '手机号码格式错误'
    return true
  },
  code (value) {
    if (!value) return '请输入验证码'
    if (!/^\d{6}$/.test(value)) return '请输入六位数字验证码'
    return true
  }
}
